import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class FenetreArc2 extends JFrame implements ListSelectionListener, ActionListener{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	Graphe g;
	JButton a1;
	ArrayList <Sommet> l;
	@SuppressWarnings("rawtypes")
	JList list;
	String nom;
@SuppressWarnings("rawtypes")
public FenetreArc2(Graphe g,ArrayList <Sommet> l,String s) {
		super();
 this.g=g;
 this.l=l;
 list = new JList();
 nom=s;
		build();//On initialise notre fenêtre
	}
 
	private void build(){
		setTitle("Opération sur le graphe"); //On donne un titre à l'application
		setSize(650,240); //On donne une taille à notre fenêtre
		setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
		setResizable(true); //On permet le redimensionnement
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de se fermer lors du clic sur la croix
		setContentPane(buildContentPane());
	}
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	private JPanel buildContentPane(){
	
		JPanel panel = new JPanel();
		panel.setLayout(new FlowLayout());
		//JLabel label = new JLabel(s);
		//panel.add(label);
        JScrollPane listeAvecAscenseur;
        Vector<String> listeItems = new Vector<String>();
         Iterator <Sommet> it=l.iterator();
         while(it.hasNext()){
        	 Sommet s=it.next();
        	 if (s.getNom()!=nom){
        	 listeItems.addElement(s.getNom());
         }
         }
         list = new JList(listeItems);
         list.setSelectedIndex(0);
        list.addListSelectionListener(this);

         listeAvecAscenseur = new JScrollPane(list);
        listeAvecAscenseur.setPreferredSize(new Dimension(80, 70));

         setLayout(new FlowLayout());
         add(listeAvecAscenseur);

         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         pack();
         setLocationRelativeTo(null);
         setSize(400,200);
         panel.add(list);
         a1=new JButton("Valider");
 		a1.addActionListener((ActionListener) this);
         panel.add(a1);
        this.setVisible(true);
        
        return panel;

	}

	@Override
	public void actionPerformed(ActionEvent e) {
		 Object source = e.getSource();
			if(source == a1){ 
				Utilisateur u1 = null;
				Sommet s2 = null;
				this.setVisible(false);
				Iterator <Sommet> t=g.listeDesSommets.iterator();
				while (t.hasNext()){
					Sommet s1=t.next();
					if (s1.getNom()==nom){
						u1=(Utilisateur) s1;
					}
				}
				Iterator <Sommet> t1=g.listeDesSommets.iterator();
				while (t1.hasNext()){
					Sommet s1=t1.next();
					if (s1.getNom()==(String) list.getSelectedValue()){
						s2=s1;
					}
				}
				
				Fenetre f=new Fenetre(g.ajouterArc(u1,s2));
			
				
			}
		}
		
	

	@Override
	public void valueChanged(ListSelectionEvent e) {
		// TODO Auto-generated method stub
		
	}


}